/*
 * Compiler.java
 *
 * Created on July 31, 2006, 12:34 AM
 *
 * (C) R. Alexander Milowski alex@milowski.com
 */

package org.infoset.xproc;

import java.net.URI;
import org.infoset.component.ComponentRegistry;
import org.infoset.xml.Document;
import org.infoset.xml.DocumentLoader;
import org.infoset.xml.Element;
import org.infoset.xml.XMLException;

/**
 *
 * @author R. Alexander Milowski
 */
public interface PipelineCompiler {
   
   Pipeline compile(URI location)
      throws XMLException;
   
   Pipeline compile(Element pipeline)
      throws XMLException;
   
   Pipeline compile(Document pipeline)
      throws XMLException;
   
   void setComponentRegistry(ComponentRegistry registry);
   
   ComponentRegistry getComponentRegistry();
   
   void setDocumentLoader(DocumentLoader loader);
   
   DocumentLoader getDocumentLoader();
   
   void setFeatureProperty(String featureId, Object value);
   
   void setFeature(String featureId, boolean flag);
   
}
